package com.java.base.exercise.jvm;

/**
 * @Author:RenPu
 * @Date: 2020/12/2 12:25
 * @Version: 1.0
 * @description: 子类的clinit方法被调用时，首先先调用父类的clinit的方法
 */
public class JvmTest3 {

    static {
        System.out.println("JvmTest3---******----静态代码块被执行");
    }


    {
        System.out.println("JvmTest3---******----构造代码块被执行");
    }

    public JvmTest3() {

        System.out.println("JvmTest3---******----构造方法的代码被执行");

    }

    public static void main(String[] args) {
        new Sub();


    }
}


class Super {
    static {
        System.out.println("super---******----静态代码块被执行");
    }

    public Super() {

        System.out.println("super---******----构造方法码块被执行");

    }

    {
        System.out.println("super---******----构造代码块被执行");
    }
}


class Sub extends Super {

    static {
        System.out.println("SUB---******----静态代码块被执行");
    }

    public Sub() {

        System.out.println("SUB---******----构造方法码块被执行");
    }

    {
        System.out.println("SUB---******----构造代码块被执行");
    }
}